/*
日志消息类设计
1.日志时间戳信息  用来过滤日志输出时间
2.日志等级        用来进行日志过滤分析
3.源文件文件名
4.源文件的行号    用来定位出现错误的代码位置
5.线程ID         用来过滤出错的线程
6.日志主体消息
7.日志器名称      （当前支持多日志器的同时使用）
*/

#ifndef __M_MSG_H__
#define __M_MSG_H__

#include "util.hpp"
#include "level.hpp"
#include <string>
#include <thread>

namespace clog
{
    struct LogMsg
    {
        time_t _ctime;          // 时间
        LogLevel::value _level; // 等级
        size_t _line;           // 行号
        std::string _file;      // 文件名
        std::thread::id _tid;   // 线程ID
        std::string _logger;    // 日志器
        std::string _payload;   // 主体消息
        LogMsg(LogLevel::value level, size_t line, const std::string file, const std::string logger, const std::string payload)
            : _ctime(clog::util::Date::now())
            , _level(level)
            , _line(line)
            , _file(file)
            , _tid(std::this_thread::get_id())
            , _logger(logger)
            , _payload(payload)
        {
        }
    };
}
#endif